package com.fourth.dao;

import com.fourth.entity.Cart;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author
 */
//@Mapper
public interface CartMapper {

    /**
     * 根据用户id查询购物车
     * @param uId
     * @return
     */
    List<Cart> selectCartByUid(@Param("uId")Integer uId);

    /**
     * 根据用户id 增加购物车数量+1
     * @param uId
     * @param goodId
     */
    void updateGoodsNum(@Param("uId")Integer uId, @Param("goodId")String goodId);

    /**
     * 根据cart对象 插入一条购物车记录
     * @param cart
     * @return
     */
    int insertCartItem(@Param("cart") Cart cart);

    /**
     * 根据用户ID 查询购物车商品的总数量
     * @param uId
     * @return
     */
    Integer selectCartNum(@Param("uId")Integer uId);
    /**
     * 根据goodId与uId查询cart
     * @param goodId
     * @param uId
     * @return
     */
    Cart selectCartByGoodIdAndUId(@Param("goodId") String goodId, @Param("uId") Integer uId);


    /**
     * 根据cart对象 插入多条购物车记录：用于购物车登陆时合并数据
     * @param cart
     * @return
     */
    int insertMoreCartItem(@Param("cart") Cart cart);


    /**
     * 合并购物车数据
     * @param num
     * @param goodId
     * @param uId
     */
    int updateMoreGoodsNum(@Param("num")Integer num, @Param("goodId") String goodId, @Param("uId")Integer uId);


    /**
     * 根据用户id 增加购物车数量-1
     * @param uId
     * @param goodId
     */
    void downdateGoodsNum(@Param("uId")Integer uId, @Param("goodId")String goodId);


    /**
     * 根据用户ID和商品ID删除一条购物车记录
     * @param uId
     * @param goodsId
     * @return
     */
    int deletCartItem(@Param("uId")Integer uId, @Param("goodsId")String goodsId);
}
